<?php
/**
 *@author Jorge Flores S.
 */
include_once dirname(dirname(__FILE__)) . '/clases/Numbers/Words.php';
include_once dirname(dirname(__FILE__)) . '/clases/class_carrito.php';
include_once dirname(dirname(__FILE__)) . '/filtro_usuario.php';
include_once dirname(dirname(__FILE__)) . '/funciones/basicas.php';
include_once dirname(dirname(__FILE__)) . '/funciones/funcionescarrito.php';
include_once dirname(dirname(__FILE__)) . '/funciones/helpers.php';

$conexion=conectar();

//Crea un objeto de la clase carrito si es que no ha sido creado
if(!isset($_SESSION['carritoNotaVenta']))
{
 $_SESSION['carritoNotaVenta'] = new carrito();
}

/**
 * Destruye variables de sesion creadas
 *
 */
function destroy()
{

      unset($_SESSION['idNotaVenta']);
		unset($_SESSION['cliente']);
		unset($_SESSION['rut']);
		unset($_SESSION['descuento']);
		unset($_SESSION['pago']);
		unset($_SESSION['nomVendedor']);
      unset($_SESSION['codVendedor']);
      unset($_SESSION['carritoNotaVenta']);
		unset($_SESSION['codigoCliente']);
		unset($_SESSION['orden']);
		
}



/**
 *INGRESA PRODUCTOS DE LA FACTURA AL CLIENTE
 *@param INTEGER $idNotaVenta numero de nota de venta que se le va a ingresar los productos
 *@return BOOLEAN true si el ingreso fue correcto, false si no lo fue
 */
function ingresaProductosNotaVenta($idNotaVenta, $nw, $carrito)
{
   
		$suma = 0;
		for ($i=0;$i<$carrito->getnum_producto();$i++)
		{
			if($carrito->getcod_prod($i) != -1 && $carrito->getcantidad($i) > 0)
			{
            
		      $codigop = $carrito->getcod_prod($i);
		      $cantidad = $carrito->getcantidad($i);
		      $descuento =$carrito->getdescuento($i);
            $costo = $carrito->getcosto($i);
            $precio_venta = $carrito->getprecio_venta($i);
		      $neto = $carrito->getneto($i);
				$iva = $carrito->getiva($i);
				$total = $carrito->gettotal($i);
				$suma = $suma + $neto;
				$consulta=mysql_query("INSERT INTO producto_nota_venta (cod_nota_venta,cod_prod,cantidad,descuento,neto,iva,total,precio_venta_unitario,costo)
                                  VALUES ('$idNotaVenta','$codigop','$cantidad','$descuento','$neto','$iva','$total','$precio_venta','$costo')");
				if ( !$consulta ) die ("Error en la consulta: ". mysql_error());
			}
		
		}
      
      //Actualiza valores de la nota de venta
		$iva = round($suma*0.19);
		$total = round($suma*1.19);
		
      $palabras=$nw->toWords($total,"es")."\tpesos";
      
      if(mysql_query("UPDATE nota_venta SET total='$total',neto='$suma',iva='$iva',total_palabras='$palabras' WHERE cod_nota_venta='$idNotaVenta'"))
		{
         return true;
      }
		else
		{
         return false;
      }
      
}


/* ingresa el producto seleccionado */
if( isset($_POST['ingresar']) || isset($_POST['ingresar_x']) )
{
   
   //Datos de session
   $_SESSION['codigoCliente']=$_POST['codigoCliente'];
   $_SESSION['cliente']=$_POST['cliente'];
   $_SESSION['rut']=$_POST['rut'];
   $_SESSION['nomVendedor'] = $_POST['nomVendedor'];
   $_SESSION['codVendedor'] = $_POST['codVendedor'];
   $_SESSION['descuento']=$_POST['descuento'];
   $_SESSION['pago']=$_POST['pago'];
   $_SESSION['orden']=$_POST['orden'];
   $_SESSION['comentario'] = $_POST['comentario'];
   
   //datos de cliente
   $codigoCliente = $_SESSION['codigoCliente'];
   $cliente = $_SESSION['cliente'];
   $rut = $_SESSION['rut'];
   $nomVendedor =  $_SESSION['nomVendedor'];
   $codVendedor = $_SESSION['codVendedor'];
   $descuento = $_SESSION['descuento'];
   $orden = $_SESSION['orden'];
   
   //Datos Producto
   $codigoProducto=$_POST['codigoProducto'];
   $nombreProducto = $_POST['nombreProducto'];
   $precioProducto=$_POST['precioProducto'];
   $costoProducto = $_POST['costoProducto'];
   $cantidad = $_POST['cantidad'];
   $pago=$_SESSION['pago'];
   $descuento=$_SESSION['descuento'];
   
   //Valida campos vacios
   if( $cliente && $codigoProducto && $cantidad && $pago!="" && $nombreProducto && $precioProducto ){
			        
	   //Comprueba si hay stock
      $consulta = mysql_query("SELECT cantidad FROM producto WHERE cod_prod='$codigoProducto'",$conexion);	
	   if (!$consulta) die ("Error en la consulta: ". mysql_error());
		$fila = mysql_fetch_array($consulta);
	   $aux = $fila['cantidad'] - $cantidad;
							
	   if($aux < 0){//si no hay stock no ingresa el producto al carrito
	    
	      ?><script>alert("no hay stock suficiente de este producto!");</script> <?php
	   }
	   else{//si es que hay stock ingresa producto al carrito
	    
	      $_SESSION["carritoNotaVenta"]->introduce_producto(0,$codigoProducto, $cantidad, $descuento, $precioProducto, $nombreProducto, $costoProducto);
      }
   }
   else
   {
        ?><script>alert("Debe llenar todos los campos");</script><?php
   }
						
}
//si presiona boton imprimir
if(isset($_POST['imprimir']) || isset($_POST['imprimir_x']))
{
   
   //si el carrito tiene productos, entra
   if(isset($_SESSION['carritoNotaVenta']) && !$_SESSION['carritoNotaVenta']->vacio()){
      
     //Datos de session
      $_SESSION['codigoCliente'] = trim($_POST['codigoCliente']);
      $_SESSION['cliente'] = trim($_POST['cliente']);
      $_SESSION['rut'] = trim($_POST['rut']);
      $_SESSION['nomVendedor'] = trim($_POST['nomVendedor']);
      $_SESSION['codVendedor'] = trim($_POST['codVendedor']);
      $_SESSION['descuento'] = trim($_POST['descuento']);
      $_SESSION['pago'] = trim($_POST['pago']);
      $_SESSION['orden'] = trim($_POST['orden']);
      $_SESSION['comentario'] = trim($_POST['comentario']);
      
      //datos de cliente
      $codigoCliente = trim($_SESSION['codigoCliente']);
      $cliente = trim($_SESSION['cliente']);
      $rut = trim($_SESSION['rut']);
      $nomVendedor =  trim($_SESSION['nomVendedor']);
      $codVendedor = trim($_SESSION['codVendedor']);
      $descuento = trim($_SESSION['descuento']);
      $orden = trim($_SESSION['orden']);
      
      //Datos Producto
      $codigoProducto = trim($_POST['codigoProducto']);
      $nombreProducto = trim($_POST['nombreProducto']);
      $precioProducto = trim($_POST['precioProducto']);
      $costoProducto = trim($_POST['costoProducto']);
      $cantidad = trim($_POST['cantidad']);
      $pago = trim($_SESSION['pago']);
      $descuento = trim($_SESSION['descuento']);
      $fecha_ingreso = date ( "Y-m-d" );
      $fecha_vencimiento = suma_fechas($fecha_ingreso, $pago); 
      $codUsuario = trim($_SESSION['usuario']);
      $comentario = trim($_SESSION['comentario']);
    
      mysql_query("BEGIN");
	   //se ingresa la nota de venta a la bd.
	   $sql="INSERT INTO nota_venta (cod_usuario, cod_cli,cod_vendedor, fecha_ingreso, forma_pago, fecha_vencimiento, orden_compra, comentarios, estado)
             VALUES ('$codUsuario','$codigoCliente','$codVendedor','$fecha_ingreso','$pago','$fecha_vencimiento','$orden','$comentario','Pendiente')";
	   $consulta = mysql_query($sql,$conexion)or die ("Error en la consulta: ". mysql_error());;
      //Obtiene ultimo ID
      $idNotaVenta = mysql_insert_id(); 
	     
    
      $nw = new Numbers_Words();
      // funcion que ingresa los productos del carrito a la bd.    
		if(ingresaProductosNotaVenta($idNotaVenta, $nw, $_SESSION['carritoNotaVenta']))
      {
         mysql_query("COMMIT");
         destroy();// destruye la variables de sesion.
		   ?>
         <html>
          <head>
            <title>Nota de venta</title>
            <?php include_once dirname(dirname(__FILE__)) . '/header.php' ?>
          </head>
          <body>
            <?php dialogoImprimirPDF("Nota de venta ingresada correctamente." , $_SESSION['BASE'] . "/notaVenta/pdfNotaVenta.php?idNotaVenta=" . $idNotaVenta , $_SESSION['BASE'] . '/img/printer.png'  ); ?>        
          </body>
          </html>
          <?php
          die();
      }
      else
      {
          ?><script>alert("Hubo un Error en el proceso de ingreso");</script><?php         
      }
	    
	  
   }//si no ha ingresado productos al carrito
   else
   {
      ?><script>alert("No ha ingresado productos");</script><?php
   }
}
// si presiona boton cancelar
if(isset($_POST['cancelar']) || isset($_POST['cancelar_x']) )
{
   
	//destruye variables de sesion.
	destroy();
	//vuelve al menu.
	//header("Location:menu2.php");
    echo "<script>window.location.reload();</script>";
    ob_end_flush();
}

//cierra conexion a la bd.
mysql_close($conexion);
?>
<html>
<head>
<title>Nota de Venta</title>
<?php include_once dirname(dirname(__FILE__)) . "/header.php" ?>
<script language="JavaScript">

function cargarDatosCliente(objetoOrigen, e)
{
   if(e.which==9)
   {
			Formato_Rut(objetoOrigen);	
			var dato = 'q='+objetoOrigen.value;
         				
			$.ajax({
					  url: '<?php echo $_SESSION['BASE'] . '/notaVenta/autocompletar_cliente_ajax.php' ?>',
					  data: dato,
					  type: 'GET',
					  success: function(data){
                  
                     if(data != 'false')
                     {
                        //alert(data);
                        data = data.split( "|" );
                        document.getElementById('codigoCliente').value = data[0];
                        document.getElementById('cliente').value = data[1];
                        //document.getElementById('rut').value = data[2];
                        document.getElementById('codVendedor').value = data[3];
                        document.getElementById('nomVendedor').value = data[4];
                        //alert(data[3]+data[4]);
                     }
                     else
                     {
                        alert("No se encontro cliente con ese rut");   
                     }
           
					  }
								
			});
   }
}

function cargarDatosProducto(objetoOrigen,e)
{
	if(e.which==9)
   {			
			
			var dato = 'q='+objetoOrigen.value;
         				
			$.ajax({
					  url: '<?php echo $_SESSION['BASE'] . '/notaVenta/autocompletar_producto_ajax.php' ?>',
					  data: dato,
					  type: 'GET',
					  success: function(data){
                  
                     if(data != 'false')
                     {
                        
                        //alert(data);
                        data = data.split( "|" );
                        //document.getElementById('codigoProducto').value = data[0];
                        document.getElementById('nombreProducto').value = data[1];
                        document.getElementById('precioProducto').value = data[2];
                        document.getElementById('costoProducto').value = data[3];
                        //alert(data[3]+data[4]);
                     }
                     else
                     {
                        alert("No se encontro producto con ese codigo");   
                     }
           
                 }				
			});
   }
}
		

function calc()
{
	var precio=document.formulario.precioProducto.value;
	var descuento=(document.formulario.descuento.value/100);
	var total=0;
	//valido el nombre
    if (document.formulario.precioProducto.value.length==0)
	{
       alert("Tiene que llenar el campo precio");
       document.formulario.precioProducto.focus();
       return 0;
    }
	if (document.formulario.cantidad.value.length==0)
	{
       alert("Tiene que llenar el campo cantidad");
       document.formulario.precio.focus();
       return 0;
    }
	 
	 total=precio;
     precio=Math.round(precio*descuento);
     total=total-precio;
	 document.formulario.calculadora.value=total;
     return 0; 
}

function calculaPorcentaje()
{
  
   var precio = document.formulario.precioProducto.value;
   var precio_req = document.formulario.calculadora.value;
   var porcentaje_descuento = document.formulario.descuento.value = Math.round((100 - (precio_req*100/precio))*1000)/1000;
   
  
}

function opcion(op)
{
   
 switch (op){
   case 'imprimir':
      { 
	     ventana=confirm("¿Esta Seguro(a) de imprimir esta Nota de Venta?"); 
	 
	      if (ventana){
	         return true;
	      }
	      else{
	         return false;             
	      }
	      break;               
      }
   case 'cancelar':
      {
         ventana=confirm("¿Esta Seguro(a) de cancelar esta Nota de Venta?"); 
	 
	      if (ventana){
	        return true;
	      }
	      else{
	        return false;             
	      }
	      break;
      }
   default: 
      { 
          return false; 
          break;
		  
	   }
   }
}

function valida()
{
         
         var F = document.formulario;
         
         if( vacio(F.codigoCliente.value) == false){
               alert("Introduzca codigo de cliente.");
				//   F.codigo_c.focus();
               return false;
         }
		   
         if( vacio(F.cliente.value) == false){
               alert("Introduzca cliente.");
				   //F.cliente.focus();
               return false;
         }
		   
         if( vacio(F.rut.value) == false){
               alert("Introduzca rut.");
				   F.rut.focus();
               return false;
         }
         
         if( vacio(F.codigoProducto.value) == false){
               alert("Introduzca codigo de producto.");
				   F.codigop.focus();
               return false;
         }
		   
         if( vacio(F.nombreProducto.value) == false){
               alert("Introduzca producto.");
				   F.producto.focus();
               return false;
         }
		   
         if( vacio(F.precioProducto.value) == false){
               alert("Introduzca precio.");
				   F.precio.focus();
               return false;
         }

         if( vacio(F.cantidad.value) == false || parseInt(F.cantidad.value) <= 0){
               alert("Introduzca cantidad.");
				   F.cantidad.focus();
               return false;
         }
         
         if( vacio(F.descuento.value) == false){
               alert("Introduzca descuento.");
				   F.descuento.focus();
               return false;
         }
         
         if( vacio(F.pago.value) == false){
               alert("Introduzca pago.");
				   F.pago.focus();
               return false;
         }
         
         if( vacio(F.costoProducto.value) == false){
               alert("Introduzca costo.");
				   F.costo.focus();
               return false;
         }
		   
               // alert("OK");
        return true;
         
}
</script>
</head>
<body>
<form name="formulario" action="notaVenta.php" method="post">
<!-- capa de titulo-->
<div style="position: absolute; width: 100%; display: block; height: 65px; border-bottom: solid 1px;">
<div style="float: left">
<font size="+2" color="#000000" face="Arial, Helvetica, sans-serif" ><b>Nota de Venta</b></font>
</div>
<div style="float: right">
<input type="image" src="<?php echo $_SESSION['BASE'] . '/img/ingresar.png' ?>" name="ingresar" onclick="javascript: return valida();" ></td>
<input type="image" src="<?php echo $_SESSION['BASE'] . '/img/cancelar.png' ?>" name="cancelar" onClick="return opcion('cancelar');"></td>
<input type="image" src="<?php echo $_SESSION['BASE'] . '/img/imprimir.png' ?>" name="imprimir" onClick="return opcion('imprimir');"></td>
<input type="image" src="<?php echo $_SESSION['BASE'] . '/img/buscar.png' ?>" onClick="javascript:show('<?php echo $_SESSION['BASE'] . '/notaVenta/buscadorNotaVenta.php' ?>',700,500,1); return false;"></td>
</div>
</div>
<!-- capa de formulario -->
<div style="position: absolute; top: 100px;">
<fieldset style="border-color: gray; width:700px">
<legend style="font-size: 11px;">Datos de Venta</legend>
<table>
   <tr>
      <td><b>*RUT CLIENTE:</b> </td>
      <td>CLIENTE</td>
      <td>VENDEDOR</td>
      <td><b>&#8470; ORDEN DE COMPRA:</b></td>
   </tr><tr>
      <td><input type="text" name="rut" id="rut" size="12" value="<?php if( !empty($_SESSION['rut']) ) echo $_SESSION['rut']; ?>"  onkeydown="javascript: cargarDatosCliente(this,event);" ></td>
      <td><input type="text" name="cliente" id="cliente" size="45" value="<?php if( !empty($_SESSION['cliente']) ) echo $_SESSION['cliente']; ?>" readonly="readonly" "><input type="hidden" name="codigoCliente" id="codigoCliente" value="<?php if( isset($_SESSION['codigoCliente']) ) echo $_SESSION['codigoCliente']; ?>" readonly="readonly" ></td>
      <td><input type="text" name="nomVendedor" id="nomVendedor" size="15" value="<?php if( !empty($_SESSION['nomVendedor']) ) echo $_SESSION['nomVendedor']; ?>" readonly="readonly"  ><input type="hidden" name="codVendedor" id="codVendedor" value="<?php if( !empty($_SESSION['codVendedor']) ) echo $_SESSION['codVendedor']; ?>" readonly="readonly"></td>
      <td><input name="ordenCompra" style="width:130px;" type="text" value="<?php if ( !empty($_SESSION['ordenCompra']) ){ echo $_SESSION['ordenCompra']; }?>"></td>
   </tr>
</table> 
<br />  
<table>
   <tr>
      <td><b>*COD. PRODUCTO:</b></td>
      <td>NOMBRE:</td>
      <td>PRECIO NETO UNITARIO:</td>
   </tr><tr>
      <td><input type="text" name="codigoProducto" id="codigoProducto" size="12" onkeydown="javascript:cargarDatosProducto(this,event);" ></td>
      <td><input type="text" name="nombreProducto" id="nombreProducto" size="62" readonly="readonly"></td>
      <td><input type="text" name="precioProducto" id="precioProducto" readonly="readonly"><input type="hidden" name="costoProducto" id="costoProducto" readonly="readonly" ></td>
   </tr>
</table>
<br />   
<table>
   <tr>
      <td><b>*CANTIDAD:</b></td>
      <td><b>*DESCUENTO:<a/b></td>
      <td><b>PRECIO NETO UNIT. FINAL:</b></td>
      <td><b>FORMA DE PAGO:</b></td>
   </tr><tr>
      <td><input name="cantidad" id="cantidad" type="text"></td>
      <td><input name="descuento" id="descuento" type="text" value="<?php if( !empty($_SESSION['descuento']) ) echo $_SESSION['descuento']; else echo "0"; ?>" maxlength="5" onKeyUp="javascript:calc();"></td>
      <td><input name="calculadora" type="text" value="0" id="calculadora" onkeyup="calculaPorcentaje()" /></td>
      <td><select name="pago" id="select" >
         <?php
         $forma_de_pago = array('Contado' => '0' , '30 Dias' => '30', '45 Dias' => '45', '60 Dias' => '60', '90 Dias' => '90');
         while(list($i,$valor) = each($forma_de_pago))
         {
            
            if($_SESSION['pago'] == $valor)
               echo "<option selected=selected value=" .$valor. ">" .$i. "</option>";
            else
               echo "<option value=" .$valor. ">" .$i. "</option>";
         }
         ?>
         </select></td>
      
 </tr>
</table>
</fieldset>
</div>
<!--capa de productos ingresados-->
<div style="position: absolute; top: 320px; border: 0px;">     
<iframe name="frame" src="<?php echo $_SESSION['BASE'] . '/notaVenta/verCarritoNotaVenta.php' ?>" frameborder="0" width="700" height="180"></iframe>
</div>
</form>

</body>
</html>